﻿''' <summary>
''' Stellt diverse Funktionen bereit
''' </summary>
''' <remarks></remarks>
Public Class notifierFunctions

    Private Const APPREGNAME As String = "GaysNotifier"
    Private Const REGAUTOSTARTFOLDER As String = "Software\Microsoft\Windows\CurrentVersion\Run"

    ''' <summary>
    ''' Neue Nachrichten-Text kurz
    ''' </summary>
    ''' <param name="Count">Anzahl Nachrichten</param>
    ''' <returns>Anzahl Nachrichten Text kurz</returns>
    ''' <remarks></remarks>
    Public Shared Function getShortNewMessageText(ByVal Count As Integer) As String
        Select Case Count
            Case 0
                Return "Keine neuen Nachrichten"
            Case 1
                Return "Eine neue Nachricht"
            Case Else
                Return Count.ToString + " neue Nachrichten"
        End Select
    End Function

    ''' <summary>
    ''' Neue Nachrichten-Text lang
    ''' </summary>
    ''' <param name="Count">Anzahl Nachrichten</param>
    ''' <returns>Anzahl Nachrichten Text lang</returns>
    ''' <remarks></remarks>
    Public Shared Function getLongNewMessageText(ByVal Count As Integer) As String
        Select Case Count
            Case 0
                Return "Du hast zurzeit keine ungelesenen Nachrichten bei GAYS.DE."
            Case 1
                Return "Du hast zurzeit eine ungelesene Nachricht bei GAYS.DE. Hier klicken zum Lesen!"
            Case Else
                Return "Du hast zurzeit " + Count.ToString + " ungelesene Nachrichten bei GAYS.DE. Hier klicken zum Lesen!"
        End Select
    End Function


    Public Shared Function getStatusSummary(ByVal pGlobalStatus As objGlobalStatus) As String
        Dim res As String
        res = pGlobalStatus.countUnreadMessages.ToString + " Nachricht(en) / "
        res += pGlobalStatus.countFriendsOnline.ToString + " Freund(e) online / "
        res += pGlobalStatus.countUserOnline.ToString + " User online"
        Return res
    End Function

    ''' <summary>
    ''' Prüft oder legt fest, ob Programm automatisch gestartet werden soll
    ''' </summary>
    ''' <value>Legt fest, ob Programm automatisch gestartet werden soll</value>
    ''' <returns>Gibt zurück, ob Programm automatisch gestartet werden soll</returns>
    ''' <remarks></remarks>
    Public Shared Property autostartEnabled() As Boolean
        Get
            Dim reg As New nativeRegistry

            Try
                Return reg.getValue(REGAUTOSTARTFOLDER, APPREGNAME).Length > 0
            Catch ex As Exception
                Return False
            End Try
        End Get
        Set(ByVal value As Boolean)
            Dim reg As New nativeRegistry

            If value Then
                reg.setValue(REGAUTOSTARTFOLDER, APPREGNAME, Application.ExecutablePath)
            Else
                reg.deleteValue(REGAUTOSTARTFOLDER, APPREGNAME)
            End If
        End Set
    End Property

End Class
